// 等待DOM加载完成
$(document).ready(function() {
  // 初始化重命名对话框
  initRenameDialog();

  // 绑定批量重命名按钮点击事件
  bindBatchRenameEvent();

  // 绑定单个文件重命名按钮点击事件
  bindSingleRenameEvent();
});

// 初始化重命名对话框
function initRenameDialog() {
  // 使用正确的对话框ID
  $("#rename-dialog").dialog({
    autoOpen: false,
    modal: true,
    width: 450,
    resizable: false,
    draggable: true,
    buttons: [
      {
        text: "确认",
        class: "ui-button-primary",
        click: function() {
          confirmRename();
        }
      },
      {
        text: "取消",
        class: "ui-button-secondary",
        click: function() {
          $(this).dialog("close");
        }
      }
    ],
    create: function() {
      // 调整按钮样式和位置
      $(this).closest(".ui-dialog").find(".ui-dialog-buttonset")
        .css("text-align", "right")
        .find(".ui-button")
        .eq(0).addClass("ui-button-primary")
        .end()
        .eq(1).addClass("ui-button-secondary");
    }
  });
}

// 绑定批量重命名按钮事件
function bindBatchRenameEvent() {
  $("#batch-rename-btn").on("click", function() {
    // 获取选中的文件ID
    var selectedFileIds = getSelectedFileIds();
    if (selectedFileIds.length === 0) {
      showError("请先选择要重命名的文件");
      return;
    }

    // 设置文件ID和对话框标题
    $("#file-ids").val(selectedFileIds.join(","));
    $("#rename-dialog").dialog("option", "title", "批量重命名");

    // 重置表单
    $("#name-pattern").val("");
    $("#start-number").val(1);
    $("#rename-error").hide();

    // 打开对话框
    $("#rename-dialog").dialog("open");
  });
}

// 绑定单个文件重命名事件
function bindSingleRenameEvent() {
  $(document).on("click", ".rename-file-btn", function() {
    var fileId = $(this).data("file-id");
    var fileName = $(this).closest("tr").find(".file-name").text();

    // 设置文件ID和对话框标题
    $("#file-ids").val(fileId);
    $("#rename-dialog").dialog("option", "title", "重命名文件");

    // 重置表单，预填当前文件名(不含扩展名)
    var nameWithoutExtension = fileName.replace(/\.[^/.]+$/, "");
    $("#name-pattern").val(nameWithoutExtension);
    $("#start-number").val(1);
    $("#rename-error").hide();

    // 打开对话框
    $("#rename-dialog").dialog("open");
  });
}

// 获取选中的文件ID
function getSelectedFileIds() {
  var fileIds = [];
  $("input[type='checkbox'].file-select:checked").each(function() {
    fileIds.push($(this).data("file-id"));
  });
  return fileIds;
}

// 确认重命名
function confirmRename() {
  var fileIds = $("#file-ids").val();
  var namePattern = $("#name-pattern").val().trim();
  var startNumber = parseInt($("#start-number").val());
  var errorElement = $("#rename-error");
  var userId = "${currentUser.userId}"; // 获取当前登录用户ID

  // 验证输入
  if (!namePattern) {
    errorElement.text("请输入命名模式").show();
    return;
  }

  if (isNaN(startNumber) || startNumber < 1) {
    errorElement.text("起始编号必须是大于等于1的数字").show();
    return;
  }

  // 隐藏错误信息
  errorElement.hide();

  // 禁用按钮并显示加载状态
  var dialog = $("#rename-dialog");
  dialog.dialog("option", "buttons", []);
  dialog.append('<div class="loading">处理中...</div>');

  // 发送AJAX请求
  $.ajax({
    url: "/file/rename",
    type: "POST",
    data: {
      fileIds: fileIds,
      namePattern: namePattern,
      startNumber: startNumber,
      userId: userId // 传递用户ID
    },
    success: function(response) {
      dialog.dialog("close");
      if (response.success) {
        showSuccess("重命名成功");
        refreshFileList();
      } else {
        showError("重命名失败: " + (response.message || "未知错误"));
      }
    },
    error: function() {
      dialog.dialog("close");
      showError("服务器错误，请稍后再试");
    },
    complete: function() {
      // 重新初始化对话框按钮
      initRenameDialog();
      dialog.find(".loading").remove();
    }
  });
}

// 刷新文件列表
function refreshFileList() {
  // 重新加载文件列表
  location.reload();
}

// 显示成功信息
function showSuccess(message) {
  alert(message);
}

// 显示错误信息
function showError(message) {
  alert(message);
}